home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / GIMP 2.6.8 / gimp-2.6.8-i686-setup.exe / {app} / share / gimp / 2.0 / scripts / coolmetal-logo.scm < prev    next >
Text File  |  2009-12-15  |  7KB  |  191 lines

  1. ;  COOL-METAL
  2. ;  Create a text effect that looks like metal with a reflection of
  3. ;  the horizon, a reflection of the text in the mirrored ground, and
  4. ;  an interesting dropshadow
  5. ;  This script was inspired by Rob Malda's 'coolmetal.gif' graphic
  6.  
  7. (define (apply-cool-metal-logo-effect img
  8.                                       logo-layer
  9.                                       size
  10.                                       bg-color
  11.                                       gradient
  12.                                       gradient-reverse)
  13.   (let* (
  14.         (feather (/ size 5))
  15.         (smear 7.5)
  16.         (period (/ size 3))
  17.         (amplitude (/ size 40))
  18.         (shrink (+ 1 (/ size 30)))
  19.         (depth (/ size 20))
  20.         (width (car (gimp-drawable-width logo-layer)))
  21.         (height (car (gimp-drawable-height logo-layer)))
  22.         (posx (- (car (gimp-drawable-offsets logo-layer))))
  23.         (posy (- (cadr (gimp-drawable-offsets logo-layer))))
  24.         (img-width (+ width (* 0.15 height) 10))
  25.         (img-height (+ (* 1.85 height) 10))
  26.         (bg-layer (car (gimp-layer-new img img-width img-height RGB-IMAGE "Background" 100 NORMAL-MODE)))
  27.         (shadow-layer (car (gimp-layer-new img img-width img-height RGBA-IMAGE "Shadow" 100 NORMAL-MODE)))
  28.         (reflect-layer (car (gimp-layer-new img width height RGBA-IMAGE "Reflection" 100 NORMAL-MODE)))
  29.         (channel 0)
  30.         (fs 0)
  31.         (layer-mask 0)
  32.         )
  33.  
  34.     (gimp-context-push)
  35.  
  36.     (gimp-selection-none img)
  37.     (gimp-image-resize img img-width img-height posx posy)
  38.     (script-fu-util-image-add-layers img shadow-layer reflect-layer bg-layer)
  39.     (gimp-layer-set-lock-alpha logo-layer TRUE)
  40.  
  41.     (gimp-context-set-background bg-color)
  42.     (gimp-edit-fill bg-layer BACKGROUND-FILL)
  43.     (gimp-edit-clear reflect-layer)
  44.     (gimp-context-set-background '(0 0 0))
  45.     (gimp-edit-fill shadow-layer BACKGROUND-FILL)
  46.  
  47.     (gimp-context-set-gradient gradient)
  48.  
  49.     (gimp-edit-blend logo-layer CUSTOM-MODE NORMAL-MODE
  50.                      GRADIENT-LINEAR 100 0 REPEAT-NONE gradient-reverse
  51.                      FALSE 0 0 TRUE
  52.                      0 0 0 (+ height 5))
  53.  
  54.     (gimp-rect-select img 0 (- (/ height 2) feather) img-width (* 2 feather) CHANNEL-OP-REPLACE 0 0)
  55.     (plug-in-gauss-iir RUN-NONINTERACTIVE img logo-layer smear TRUE TRUE)
  56.     (gimp-selection-none img)
  57.     (plug-in-ripple RUN-NONINTERACTIVE img logo-layer period amplitude 1 0 1 TRUE FALSE)
  58.     (gimp-layer-translate logo-layer 5 5)
  59.     (gimp-layer-resize logo-layer img-width img-height 5 5)
  60.  
  61.     (gimp-selection-layer-alpha logo-layer)
  62.     (set! channel (car (gimp-selection-save img)))
  63.     (gimp-selection-shrink img shrink)
  64.     (gimp-selection-invert img)
  65.     (plug-in-gauss-rle RUN-NONINTERACTIVE img channel feather TRUE TRUE)
  66.     (gimp-selection-layer-alpha logo-layer)
  67.     (gimp-selection-invert img)
  68.     (gimp-context-set-background '(0 0 0))
  69.     (gimp-edit-fill channel BACKGROUND-FILL)
  70.     (gimp-selection-none img)
  71.  
  72.     (plug-in-bump-map RUN-NONINTERACTIVE img logo-layer channel 135 45 depth 0 0 0 0 FALSE FALSE 0)
  73.  
  74.     (gimp-selection-layer-alpha logo-layer)
  75.     (set! fs (car (gimp-selection-float shadow-layer 0 0)))
  76.     (gimp-edit-clear shadow-layer)
  77.     (gimp-drawable-transform-perspective-default fs
  78.                       (+ 5 (* 0.15 height)) (- height (* 0.15 height))
  79.                       (+ 5 width (* 0.15 height)) (- height (* 0.15 height))
  80.                       5 height
  81.                       (+ 5 width) height
  82.                       FALSE FALSE)
  83.     (gimp-floating-sel-anchor fs)
  84.     (plug-in-gauss-rle RUN-NONINTERACTIVE img shadow-layer smear TRUE TRUE)
  85.  
  86.     (gimp-rect-select img 5 5 width height CHANNEL-OP-REPLACE FALSE 0)
  87.     (gimp-edit-copy logo-layer)
  88.     (set! fs (car (gimp-edit-paste reflect-layer FALSE)))
  89.     (gimp-floating-sel-anchor fs)
  90.     (gimp-drawable-transform-scale-default reflect-layer
  91.                                            0 0 width (* 0.85 height)
  92.                                            FALSE FALSE)
  93.     (gimp-drawable-transform-flip-simple reflect-layer ORIENTATION-VERTICAL
  94.                                          TRUE 0 TRUE)
  95.     (gimp-layer-set-offsets reflect-layer 5 (+ 3 height))
  96.  
  97.     (set! layer-mask (car (gimp-layer-create-mask reflect-layer ADD-WHITE-MASK)))
  98.     (gimp-layer-add-mask reflect-layer layer-mask)
  99.     (gimp-context-set-foreground '(255 255 255))
  100.     (gimp-context-set-background '(0 0 0))
  101.     (gimp-edit-blend layer-mask FG-BG-RGB-MODE NORMAL-MODE
  102.                      GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
  103.                      FALSE 0 0 TRUE
  104.                      0 (- (/ height 2)) 0 height)
  105.  
  106.     (gimp-image-remove-channel img channel)
  107.  
  108.     (gimp-context-pop)
  109.   )
  110. )
  111.  
  112.  
  113. (define (script-fu-cool-metal-logo-alpha img
  114.                                          logo-layer
  115.                                          size
  116.                                          bg-color
  117.                                          gradient
  118.                                          gradient-reverse)
  119.   (begin
  120.     (gimp-image-undo-group-start img)
  121.  
  122.     (if (= (car (gimp-layer-is-floating-sel logo-layer)) TRUE)
  123.         (begin
  124.             (gimp-floating-sel-to-layer logo-layer)
  125.             (set! logo-layer (car (gimp-image-get-active-layer img)))
  126.         )
  127.      )
  128.  
  129.     (apply-cool-metal-logo-effect img logo-layer size bg-color
  130.                                   gradient gradient-reverse)
  131.     (gimp-image-undo-group-end img)
  132.     (gimp-displays-flush)
  133.   )
  134. )
  135.  
  136. (script-fu-register "script-fu-cool-metal-logo-alpha"
  137.   _"Cool _Metal..."
  138.   _"Add a metallic effect to the selected region (or alpha) with reflections and perspective shadows"
  139.   "Spencer Kimball & Rob Malda"
  140.   "Spencer Kimball & Rob Malda"
  141.   "1997"
  142.   "RGBA"
  143.   SF-IMAGE      "Image"                 0
  144.   SF-DRAWABLE   "Drawable"              0
  145.   SF-ADJUSTMENT _"Effect size (pixels)" '(100 2 1000 1 10 0 1)
  146.   SF-COLOR      _"Background color"     "white"
  147.   SF-GRADIENT   _"Gradient"             "Horizon 1"
  148.   SF-TOGGLE     _"Gradient reverse"     FALSE
  149. )
  150.  
  151. (script-fu-menu-register "script-fu-cool-metal-logo-alpha"
  152.                          "<Image>/Filters/Alpha to Logo")
  153.  
  154.  
  155. (define (script-fu-cool-metal-logo text
  156.                                    size
  157.                                    font
  158.                                    bg-color
  159.                                    gradient
  160.                                    gradient-reverse)
  161.   (let* (
  162.         (img (car (gimp-image-new 256 256 RGB)))
  163.         (text-layer (car (gimp-text-fontname img -1 0 0 text 0 TRUE
  164.                                               size PIXELS font)))
  165.         )
  166.     (gimp-image-undo-disable img)
  167.     (apply-cool-metal-logo-effect img text-layer size bg-color
  168.                                   gradient gradient-reverse)
  169.     (gimp-image-undo-enable img)
  170.     (gimp-display-new img)
  171.   )
  172. )
  173.  
  174. (script-fu-register "script-fu-cool-metal-logo"
  175.   _"Cool _Metal..."
  176.   _"Create a metallic logo with reflections and perspective shadows"
  177.   "Spencer Kimball & Rob Malda"
  178.   "Spencer Kimball & Rob Malda"
  179.   "1997"
  180.   ""
  181.   SF-STRING     _"Text"               "Cool Metal"
  182.   SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
  183.   SF-FONT       _"Font"               "Crillee"
  184.   SF-COLOR      _"Background color"   "white"
  185.   SF-GRADIENT   _"Gradient"           "Horizon 1"
  186.   SF-TOGGLE     _"Gradient reverse"   FALSE
  187. )
  188.  
  189. (script-fu-menu-register "script-fu-cool-metal-logo"
  190.                          "<Image>/File/Create/Logos")
  191.